﻿using System.ComponentModel.DataAnnotations;

namespace Modules.Person
{
    public class PersonConstants
    {
        public enum 进出场状态
        {
            进场 = 1,
            离场 = 0
        }

        public enum 工人类型
        {
            管理人员 = 10,
            建筑工人 = 20
        }

        public enum 民族
        {
            汉 = 1,
            蒙古 = 2,
            回 = 3,
            藏 = 4,
            维吾尔 = 5,
            苗 = 6,
            彝 = 7,
            壮 = 8,
            布依 = 9,
            朝鲜 = 10,
            满 = 11,
            侗 = 12,
            瑶 = 13,
            白 = 14,
            土家 = 15,
            哈尼 = 16,
            哈萨克 = 17,
            傣 = 18,
            黎 = 19,
            傈僳 = 20,
            佤 = 21,
            畲 = 22,
            高山 = 23,
            拉祜 = 24,
            水 = 25,
            东乡 = 26,
            纳西 = 27,
            景颇 = 28,
            柯尔克孜 = 29,
            土 = 30,
            达斡尔 = 31,
            仫佬 = 32,
            羌 = 33,
            布朗 = 34,
            撒拉 = 35,
            毛南 = 36,
            仡佬 = 37,
            锡伯 = 38,
            阿昌 = 39,
            普米 = 40,
            塔吉克 = 41,
            怒 = 42,
            乌孜别克 = 43,
            俄罗斯 = 44,
            鄂温克 = 45,
            德昂 = 46,
            保安 = 47,
            裕固 = 48,
            京 = 49,
            塔塔尔 = 50,
            独龙 = 51,
            鄂伦春 = 52,
            赫哲 = 53,
            门巴 = 54,
            珞巴 = 55,
            基诺 = 56,
            其他 = 57,
        }

        public enum 工人工种 : int
        {
            砌筑工 = 010,
            钢筋工 = 020,
            架子工 = 030,
            混凝土工 = 040,
            模板工 = 050,
            机械设备安装工 = 060,
            通风工 = 070,
            安装起重工 = 080,
            安装钳工 = 090,
            电气设备安装调试工 = 100,
            管道工 = 110,
            变电安装工 = 120,
            建筑电工 = 130,
            司泵工 = 140,
            挖掘铲运和桩工机械司机 = 150,
            桩机操作工 = 160,
            起重信号工 = 170,
            建筑起重机械安装拆卸工 = 180,
            装饰装修工 = 190,
            室内成套设施安装工 = 200,
            建筑门窗幕墙安装工 = 210,
            幕墙制作工 = 220,
            防水工 = 230,
            木工 = 240,
            石工 = 250,
            电焊工 = 270,
            爆破工 = 280,
            除尘工 = 290,
            测量放线工 = 300,
            线路架设工 = 310,
            古建筑传统石工 = 320,
            古建筑传统瓦工 = 330,
            古建筑传统彩画工 = 340,
            古建筑传统木工 = 350,
            古建筑传统油工 = 360,
            金属工 = 380,
            管理人员 = 900,
            杂工 = 390,
            其它 = 1000
        }

        public enum 管理岗位类型 : int
        {
            总监理工程师 = 1001,
            副总监理工程师 = 1002,
            安全监理工程师 = 1003,
            专业监理工程师 = 1004,
            监理工程师 = 1005,
            监理员 = 1006,
            监理安全员 = 1007,
            项目总工程师 = 1008,
            项目经理 = 1009,
            工程经理 = 1010,
            项目技术负责人 = 1011,
            项目工程师 = 1012,
            项目管理员 = 1013,
            项目副经理 = 1014,
            项目总监 = 1015,
            施工员 = 1016,
            质量员 = 1017,
            安全员 = 1018,
            标准员 = 1019,
            材料员 = 1020,
            机械员 = 1021,
            劳务员 = 1022,
            资料员 = 1023,
            总监理工程师代表 = 1024,
            测量员 = 1025,
            试验员 = 1026,
            造价员 = 1027,
            质量负责人 = 1028,
            安全负责人 = 1029,
            技术负责人 = 1030,
            生产经理 = 1031,
            物资材料工程师 = 1032,
            其它 = 1099,
            劳资管理员 = 1100
        }

        public enum 工人合同期限类型
        {
            固定期限合同 = 0,
            以完成一定工作为期限的合同 = 1
        }

        public enum 工人考勤方向
        {
            入场 = 01,
            出场 = 02
        }

        public enum 工人进退场方向
        {
            进场 = 1,
            退场 = 0
        }

        public enum 工人计量单位类型
        {
            米 = 80,
            平方米 = 81,
            立方米 = 82
        }

        public enum 工人通行方式
        {
            人脸识别 = 001,
            虹膜识别 = 002,
            指纹识别 = 003,
            掌纹识别 = 004,
            身份证识别 = 005,
            实名卡 = 006,

            /// <summary>
            /// 适用于人员没有通过闸机系统出工地而导致人员状态不一致的情况
            /// </summary>
            [Display(Name = "适用于人员没有通过闸机系统出工地而导致人员状态不一致的情况")]
            异常清退 = 007,

            /// <summary>
            /// 一键开闸(需要与闸机交互)
            /// </summary>
            [Display(Name = "一键开闸(需要与闸机交互)")]
            一键开闸 = 008,

            /// <summary>
            /// 应急通道（不需要与闸机交互）
            /// </summary>
            [Display(Name = "应急通道（不需要与闸机交互）")]
            应急通道 = 009,

            二维码识别 = 010,
            其他方式 = 011
        }

        public enum 工人培训类型 : int
        {
            安全教育 = 003001,
            入场教育 = 003002,
            退场教育 = 003003,
            技能培训 = 003004
        }

        public enum 工人性别字典
        {
            男 = 1,
            女 = 0
        }

        public enum 工人政治面貌
        {
            中共党员 = 01,
            中共预备党员 = 02,
            共青团员 = 03,
            民革党员 = 04,
            民盟盟员 = 05,
            民建会员 = 06,
            民进会员 = 07,
            农工党党员 = 08,
            致公党党员 = 09,
            九三学社社员 = 10,
            台盟盟员 = 11,
            无党派人士 = 12,
            群众 = 13
        }

        public enum 工人文化程度
        {
            小学 = 01,
            初中 = 02,
            高中 = 03,
            中专 = 04,
            大专 = 05,
            本科 = 06,
            硕士 = 07,
            博士 = 08,
            其他 = 99
        }

        public enum 工人婚姻状况
        {
            未婚 = 01,
            已婚 = 02,
            离异 = 03,
            丧偶 = 04
        }

        public enum 人员证书种类
        {
            职业技能证 = 1,
            安装证 = 2,
            岗位证 = 3,
            职称证 = 4,
            职业注册证 = 5,
            其他 = 6
        }

        public enum 人员职称等级
        {
            初级职称 = 1,
            中级职称 = 2,
            高级职称 = 3
        }

        public enum 人员技能等级
        {
            普工 = 1,
            初级工 = 2,
            中级工 = 3,
            高级工 = 4,
            技师 = 5,
            高级技师 = 6
        }

        public enum 人员合同类别
        {
            固定期限劳动合同 = 1,
            无固定期限劳动合同 = 2,
            以完成一定工作任务为期限的劳动合同 = 3,
            劳务派遣合同 = 4,
            其他 = 9
        }

        public enum 工资卡类型
        {
            社会保障卡 = 1,
            银行卡 = 2,
            //存折 = 3,
            //其他 = 100
        }

        public enum 人员附件租户
        {
            [Display(Name = "人员基础表")]
            Person = 100,

            [Display(Name = "人员合同表")]
            Contract = 101,

            [Display(Name = "人员证书表")]
            Certificate = 102,
        }

        public enum 人员附件类型
        {
            合同附件 = 100,
            证书附件 = 101,
        }

        public enum 证书字典类型
        {
            分类 = 1,
            专业 = 2,
            状态 = 3,
            等级 = 4
        }
    }
}